// 全局导航工具类
class Navigation {
  // 页面路径映射
  static pages = {
    'index': '../index/index',
    'home': '../index/index',  // home 也指向 index
    'courses': '../courses/courses',
    'member': '../member/member',
    'profile': '../profile/profile',
    'logs': '../logs/logs'
  }

  // 统一的页面跳转方法
  static navigateTo(pageName, options = {}) {
    const pagePath = this.pages[pageName]
    
    if (!pagePath) {
      console.error(`页面 ${pageName} 不存在`)
      wx.showToast({
        title: '页面不存在',
        icon: 'none'
      })
      return false
    }

    const navigateOptions = {
      url: pagePath,
      success: (res) => {
        console.log(`成功跳转到 ${pageName} 页面`)
        if (options.onSuccess) {
          options.onSuccess(res)
        }
      },
      fail: (err) => {
        console.error(`跳转到 ${pageName} 页面失败:`, err)
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        })
        if (options.onFail) {
          options.onFail(err)
        }
      }
    }

    wx.navigateTo(navigateOptions)
    return true
  }

  // 底部菜单导航
  static switchTab(currentPage, targetPage) {
    if (currentPage === targetPage) {
      wx.showToast({
        title: '当前页面',
        icon: 'none'
      })
      return false
    }

    return this.navigateTo(targetPage, {
      onSuccess: () => {
        wx.showToast({
          title: `跳转到${this.getPageTitle(targetPage)}`,
          icon: 'success'
        })
      }
    })
  }

  // 获取页面标题
  static getPageTitle(pageName) {
    const titles = {
      'index': '首页',
      'home': '首页',
      'courses': '课程',
      'member': '会员',
      'profile': '我的',
      'logs': '日志'
    }
    return titles[pageName] || pageName
  }

  // 带参数的页面跳转
  static navigateWithParams(pageName, params = {}) {
    const pagePath = this.pages[pageName]
    
    if (!pagePath) {
      console.error(`页面 ${pageName} 不存在`)
      return false
    }

    // 构建查询参数
    const queryString = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&')
    
    const url = queryString ? `${pagePath}?${queryString}` : pagePath

    wx.navigateTo({
      url: url,
      success: (res) => {
        console.log(`成功跳转到 ${pageName} 页面，参数:`, params)
      },
      fail: (err) => {
        console.error(`跳转到 ${pageName} 页面失败:`, err)
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        })
      }
    })
    return true
  }
}

// 导出导航类
module.exports = Navigation

